package com.ticket.io;

import java.io.*;

public class AppendToFile {
    /**
     * A方法追加文件：使用RandomAccessFile
     */
    public static void appendMethodA(String fileName, String content)  {
        try {
            // 打开一个随机访问文件流，按读写方式
            RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw");
            // 文件长度，字节数
            long fileLength = randomFile.length();
            //将写文件指针移到文件尾。
            randomFile.seek(fileLength);
            randomFile.writeBytes(content);
            randomFile.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /**
     * B方法追加文件：使用FileWriter
     */
    public static void appendMethodB(String fileName, String content) {
        try {
            //打开一个写文件器，构造函数中的第二个参数true表示以追加形式写文件
            FileWriter writer = new FileWriter(fileName, true);
            writer.write(content);
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /** @param filePathAndName 含路径文件名
     ** * @param fileContent   写入文件的字符串
     * */
    public static void createFile(String filePathAndName ) {
        try {
            File f = new File(filePathAndName);
            if (!f.exists())    {
                f.createNewFile();
            }   //定义编码
             OutputStreamWriter write = new OutputStreamWriter(new FileOutputStream(f), "UTF-8");
            BufferedWriter writer = new BufferedWriter(write);
            writer.close();
        } catch (Exception e) {
            System.out.println("写文件内容操作出错");
            e.printStackTrace();
        }
    }


    public static void main(String[] args) {
        String fileName = "/upload/afc1fc978dfb486c8cd3eb94ec87cc2cd-afc1fc978dfb486c8cd3eb94ec87cc2cd11111.txt";
        String content = "2019/12/09 18:18 , 2 , \"你好!我是测试!\".";
        //按方法A追加文件
//        AppendToFile.appendMethodA(fileName, content);
//        AppendToFile.appendMethodA(fileName, "append end. \n");
        //显示文件内容
//        ReadFromFile.readFileByLines(fileName);
        //按方法B追加文件
        AppendToFile.appendMethodB(fileName, " \r\n"+content);
        //显示文件内容
//        ReadFromFile.readFileByLines(fileName);
    }
}